#!/usr/bin/env node

// Node Cli 应用入口文件必须要有以上这样的文件头
// 如果是 Linux 或 Mac 系统,还需要设置该文件的权限为 755 (读写执行-读执行-读执行)
// chmod 755 cli.js

//console.log("roch cli working")

// 脚手架的工作过程:
// 1. 通过命令行交互填写项目配置
// 2. 脚手架根据配置信息生成文件

const inquirer = require('inquirer')
const path = require('path')
const fs = require('fs')
const ejs = require('ejs')

inquirer.prompt([
  {
    type: 'input',
    name: 'name',
    message: 'Project name?'
  },
  {
    type: 'input',
    name: 'author',
    message: 'Author?'
  }
])
  .then(answers => {
    console.log("answers...")
    // 根据用户回答的结果生成文件

    // 模板目录
    const tmpDir = path.join(__dirname, 'templates')

    // 目标目录
    const dstDir = process.cwd()

    // 将模板目录下的所有文件转换到目标目录中
    fs.readdir(tmpDir, (err, files) => {
      if (err) throw err
      files.forEach(file => {
        // console.log(file)

        // 通过 ejs 模板引擎渲染文件
        ejs.renderFile(path.join(tmpDir, file), answers, (err, result) => {
          if (err) throw err
          // console.log(result)

          // 将结果写入目标目录
          fs.writeFileSync(path.join(dstDir, file), result)
        })
      })
    })
  })